from  mlibs.mmath import mine_abs
from  mlibs.mmath import mine_plusRedu
from  mlibs.mmath import fact
from  mlibs.mmath import a_fact

r=mine_abs(-1)
print(r)

r=mine_abs('A')
print(r)

plusV,ReduV=mine_plusRedu(2,3)
print(plusV)
print(ReduV)

n=5
#print(fact(n))

n=1000
print(fact(n))
#报错，堆栈溢出

#尾递归
print(a_fact(n))

#遗憾的是，大多数编程语言没有针对尾递归做优化，Python解释器也没有做优化，
# 所以，即使把上面的fact(n)函数改成尾递归方式，也会导致栈溢出。